Week2-전체가이드
Week2 - 동적 웹 애플리케이션 배포 실습
학습 목표
AWS 클라우드 환경에서 동적 웹 애플리케이션을 배포하고 운영하는 방법을 학습합니다.
기본 과정 목표 (Node.js 2-Tier)
- AWS VPC를 활용한 네트워크 인프라 구축
- EC2에 Node.js 웹 서버 배포
- RDS MySQL 데이터베이스 연동
- 환경변수를 통한 보안 관리
심화 과정 목표 (Web/WAS 분리 3-Tier)
- Web/WAS 분리 아키텍처 설계
- Apache HTTP Server 구성
- Apache Tomcat WAS 구성
- JSP 기반 동적 웹 애플리케이션
실습 과정
특징:
- Node.js + Express 기반
- 간단하고 빠른 개발
- 현대적인 웹 개발 스택
- 환경변수 보안 관리
진행 순서:
- AWS EDU/Archive/조선대학교 AWS 멘토링/Week2-Dynamic-WebApp-Deployment/01-사전준비/01-환경설정 - AWS 계정 및 도구 준비
- AWS EDU/Archive/조선대학교 AWS 멘토링/Week2-Dynamic-WebApp-Deployment/02-VPC설계/01-VPC아키텍처이해 - 네트워크 기본 개념
- AWS EDU/Archive/조선대학교 AWS 멘토링/Week2-Dynamic-WebApp-Deployment/02-VPC설계/02-VPC단계별구성 - VPC 실제 구성
- AWS EDU/Archive/조선대학교 AWS 멘토링/Week2-Dynamic-WebApp-Deployment/02-VPC설계/03-보안그룹설정 - 보안 그룹 생성
- AWS EDU/Archive/조선대학교 AWS 멘토링/Week2-Dynamic-WebApp-Deployment/03-기본실습-NodeJS/01-EC2인스턴스시작 - EC2 생성 및 설정
- AWS EDU/Archive/조선대학교 AWS 멘토링/Week2-Dynamic-WebApp-Deployment/03-기본실습-NodeJS/02-NodeJS설치배포 - Hello World 웹서버
- AWS EDU/Archive/조선대학교 AWS 멘토링/Week2-Dynamic-WebApp-Deployment/03-기본실습-NodeJS/03-RDS생성 - MySQL 데이터베이스 생성
- AWS EDU/Archive/조선대학교 AWS 멘토링/Week2-Dynamic-WebApp-Deployment/03-기본실습-NodeJS/04-RDS연결업그레이드 - 실제 웹앱으로 업그레이드
🔵 심화 과정
실무급 아키텍처 구성이나 Java 기반 학습이 목적인 경우
특징:
- Apache + Tomcat 분리 구조
- JSP 기반 서버사이드 개발
- 엔터프라이즈급 아키텍처
- 확장 가능한 시스템 설계
진행 순서:
- 기본 과정 1-4단계 완료 후 (VPC 구성까지)
- AWS EDU/Archive/조선대학교 AWS 멘토링/Week3-WAS-Deployment/WebWAS분리/01-아키텍처이해및준비 - Web/WAS 분리 개념
- AWS EDU/Archive/조선대학교 AWS 멘토링/Week3-WAS-Deployment/WebWAS분리/02-WAS서버구성 - Tomcat + JSP 구축
- AWS EDU/Archive/조선대학교 AWS 멘토링/Week3-WAS-Deployment/WebWAS분리/03-Web서버연동 - Apache + 프록시 설정
- AWS EDU/Archive/조선대학교 AWS 멘토링/Week3-WAS-Deployment/WebWAS분리/04-데이터베이스연동 - MySQL 연동 완성
아키텍처 비교
기본 실습: Node.js 2-Tier
[ 사용자 ] → [ Internet Gateway ] → [ VPC ]
├── Public Subnet
│ └── EC2 (Node.js + Express)
│ ├── 정적 파일 처리
│ └── 동적 처리 + DB 연결
└── Private Subnet
└── RDS MySQL
장점:
- 개발 속도가 빠름
- 구조가 단순함
- 현대적인 개발 환경
- 작은 규모 서비스에 적합
심화 실습: Web/WAS 분리 3-Tier
[ 사용자 ] → [ Internet Gateway ] → [ VPC ]
├── Public Subnet
│ └── EC2 (Apache Web Server)
│ ├── 정적 파일 직접 처리
│ └── 동적 요청 프록시
├── Private Subnet (WAS)
│ └── EC2 (Tomcat)
│ └── JSP 동적 처리
└── Private Subnet (DB)
└── RDS MySQL
장점:
- 각 계층별 독립적 확장 가능
- 높은 성능 (정적/동적 처리 분리)
- 강화된 보안 (WAS가 Private)
- 대규모 서비스에 적합
실습 준비물
필수 사항
- AWS 계정 (AWS Academy 또는 개인 계정)
- 웹 브라우저
- MobaXterm 또는 SSH 클라이언트
권장 사전 지식
- 기본 실습: JavaScript 기초, Node.js 개념
- 심화 실습: Java 기초, JSP 개념
예상 완료 체크리스트
기본 과정 완료 시
심화 과정 완료 시
주의사항 및 팁
비용 관리
- 실습 완료 후 반드시 리소스 정리 (EC2, RDS 종료/삭제)
- RDS 인스턴스는 삭제 시 최종 스냅샷 생성 여부 확인
- 예상 비용: 프리티어 기준 하루 실습 시 거의 무료
보안
- 키 페어 파일(.pem) 분실 주의
- 보안 그룹에서 불필요한 포트 열지 않기
- 환경변수 사용으로 DB 비밀번호 하드코딩 방지
- 실습용이므로 간단한 비밀번호 사용 가능
성능 최적화 팁
- 기본 실습: PM2 클러스터 모드 활용
- 심화 실습: Apache KeepAlive, Tomcat 커넥션 풀 설정
실습 후 학습 확장 아이디어
기본 실습 확장
- 도메인 연결: Route 53으로 도메인 연결
- HTTPS 적용: Let's Encrypt 인증서 적용
- 로드 밸런서: ALB를 통한 고가용성 구현
- 오토 스케일링: Auto Scaling Group 구성
심화 실습 확장
- 세션 클러스터링: Redis를 통한 세션 공유
- 데이터베이스 이중화: RDS Multi-AZ 구성
- CDN 연동: CloudFront를 통한 성능 향상
- 컨테이너화: Docker + ECS 배포
리소스 정리 순서 (실습 완료 후)
기본 실습 정리
- EC2 인스턴스 종료
- RDS 인스턴스 삭제 (스냅샷 여부 선택)
- VPC 및 관련 리소스 삭제
심화 실습 정리
- Web 서버, WAS 서버 EC2 인스턴스 종료
- RDS 인스턴스 삭제
- VPC 및 관련 리소스 삭제
- 키 페어 삭제 (필요시)
어떤 과정을 선택하시겠습니까?
- 빠르고 현대적인 개발 경험: AWS EDU/Archive/조선대학교 AWS 멘토링/Week2-Dynamic-WebApp-Deployment/03-기본실습-NodeJS/01-EC2인스턴스시작
- 엔터프라이즈급 아키텍처 경험: AWS EDU/Archive/조선대학교 AWS 멘토링/Week3-WAS-Deployment/WebWAS분리/01-아키텍처이해및준비
처음이시라면: AWS EDU/Archive/조선대학교 AWS 멘토링/Week2-Dynamic-WebApp-Deployment/01-사전준비/01-환경설정부터 시작하세요!
관련 문서: AWS 교육 이력